<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <link rel="Stylesheet" type="text/css" href=
  "../../default.css" />
  <meta http-equiv="Content-Type" content=
  "text/html; charset=utf-8" />

  <title>Шаг 2.4: Тестируем результат</title>
</head>

<body>
  <h1>Шаг 2.4: Тестируем результат</h1><strong>Срок действия
  серийного номера</strong>

  <p>Создадим еще один серийный номер с ограничением срока
  действия - скажем, 2005-м годом. Эта дата уже прошла и наш номер
  должен быть недействительным. Перейдите на закладку "Лицензии" и
  нажмите кнопку "Добавить лицензию". В появившемся окне поставьте
  галочку "Срок годности" и введите "30 сентября 2005 года".
  Создайте номер, скопируйте его и поместите в файл seral.txt,
  после чего запустите программу:</p>
  <pre class="code">C:\test&gt;dummy_app.vmp.exe
serial number is bad
state = SERIAL_STATE_FLAG_DATE_EXPIRED
</pre>

  <p>Модуль лицензирования вернул флаг "срок действия номера
  закончен". Вернем рабочий номер обратно в файл serial.txt и
  убедимся, что его модуль лицензирования примет без проблем.</p>
  <pre class="code">C:\test&gt;dummy_app.vmp.exe
serial number is correct, calling foo()
I'm foo
done
</pre><strong>Занесение номера в черный список</strong>

  <p>Предположим, что наш "хороший" серийный номер выложен в
  Интернет. Нам необходимо его заблокировать, чтобы в следующих
  версиях программы он уже не работал. Для этого мы выбираем его в
  списке номеров и нажимаем кнопку "Заблокировать". Сам факт
  нажатия кнопки не блокирует серийный номер в защищенном
  приложении, однако после повторной защиты файла, он откажется
  принимать этот серийный номер. Проверим. Если сейчас запустить
  нашу программу, то она примет заблокированный номер без проблем,
  т.к. это старая версия программы и она еще не знает о
  блокировке:</p>
  <pre class="code">C:\test&gt;dummy_app.vmp.exe
serial number is correct, calling foo()
I'm foo
done
</pre>

  <p>Сделаем копию нашей программы и назовем ее
  "dummy_app1.vmp.exe", а после этого перейдем в VMProtect и
  повторно защитим наше приложение, после чего запустим новую
  версию программы:</p>
  <pre class="code">C:\test&gt;dummy_app.vmp.exe
serial number is bad
state = SERIAL_STATE_FLAG_BLACKLISTED
</pre>

  <p>Теперь для сравнения еще раз запустим старую версию
  программы:</p>
  <pre class="code">C:\test&gt;dummy_app1.vmp.exe
serial number is correct, calling foo()
I'm foo
done
</pre>

  <p>Старая версия ничего не знает о блокировании номера и
  продолжает работать как и раньше. </p><br />
  <br /><p>На <a href=
  "step25_codelock.htm">последнем шаге</a> мы попробуем привязать
  выполняемый код к серийному номеру. Перед этим разблокируйте
  серийный номер и перезащитите приложение в VMProtect, чтобы оно
  снова принимало наш серийный номер. Или создайте новую
  лицензию.</p><br />
  <br />
  <br />
  <br />
  <br />
  <hr noshade="noshade" size="1" />

  <div align="center">
    © 2006-2015 Copyright VMProtect Software
  </div>
</body>
</html>
